<?php
 function getListeAppelOffre($requete){
			$resultat = array();
			if(isset($_SESSION['email'])){
				$numero_page = 1;
				$total_appel_offre = $this->getNombreAppelOffre("appel_offre_restaurant");
				$total_appel_offre += $this->getNombreAppelOffre("appel_offre_hotel");
				
				$nombre_page = ceil($total_appel_offre/NOMBRE_APPEL_OFFRE_PAR_PAGE);
				
				if(!empty($requete->params)){
					$numero_page = intval($requete->params[0]);
					if($numero_page > $nombre_page){
						echo "ouioui";
						$numero_page = $nombre_page;	
					} else if($numero_page<=0){
						$numero_page = 1;
					} 
					if($numero_page==1){
						unset($_SESSION['premiere_entree_restaurant']);
						unset($_SESSION['premiere_entree_hotel']);
					}
				} else {
					unset($_SESSION['premiere_entree_restaurant']);
					unset($_SESSION['premiere_entree_hotel']);
				}
				
				if(isset($_SESSION['premiere_entree_restaurant']) && $nombre_page!=1){
					$premiere_entree_restaurant = ($_SESSION['premiere_entree_restaurant']-1)*NOMBRE_APPEL_OFFRE_PAR_PAGE;
				} else {
					$premiere_entree_restaurant = ($numero_page-1)*NOMBRE_APPEL_OFFRE_PAR_PAGE;
				}
				 
				if(isset($_SESSION['premiere_entree_hotel']) && $nombre_page!=1 ){
					$premiere_entree_hotel = ($_SESSION['premiere_entree_hotel']-1)*NOMBRE_APPEL_OFFRE_PAR_PAGE;
				} else {
					$premiere_entree_hotel = ($numero_page-1)*NOMBRE_APPEL_OFFRE_PAR_PAGE;
				}
				
				$requete_resto = $this->pdo->query('SELECT * FROM appel_offre_restaurant ORDER BY id_appel_offre DESC LIMIT 
				'.$premiere_entree_restaurant.', '.NOMBRE_APPEL_OFFRE_PAR_PAGE. ' ');
				
				$requete_hotel = $this->pdo->query('SELECT * FROM appel_offre_hotel ORDER BY id_appel_offre DESC LIMIT '.
				$premiere_entree_hotel.', '.NOMBRE_APPEL_OFFRE_PAR_PAGE.' ');
				
				$appel_offre_resto = $requete_resto->fetchAll();
				$appel_offre_hotel = $requete_hotel->fetchAll();
				
				
				for($i = 1; $i<=NOMBRE_APPEL_OFFRE_PAR_PAGE && count($resultat)<=NOMBRE_APPEL_OFFRE_PAR_PAGE;$i++){
						
						if(empty($appel_offre_hotel)){
							$reste = NOMBRE_APPEL_OFFRE_PAR_PAGE - count($resultat);
							for($cpt=0;$cpt<$reste;$cpt++){
								if(!empty($appel_offre_resto)){
									$donnee = array_shift($appel_offre_resto);
									$resultat[] = $donnee;
									$premiere_entree_restaurant++;
								} else {
									break;	
								}
							}
								
						} else if(empty($appel_offre_resto)){
							$reste = NOMBRE_APPEL_OFFRE_PAR_PAGE - count($resultat);
							for($cpt=0;$cpt<$reste;$cpt++){
								if(!empty($appel_offre_hotel)){
									$donnee = array_shift($appel_offre_hotel);
									$resultat[] = $donnee;
									$premiere_entree_hotel++;
								} else {
									break;	
								}
							}
						} else if(empty($appel_offre_hotel) && empty($appel_offre_resto)){
							break;
						} else {
							$donnee_resto = $appel_offre_resto[0];
							$donnee_hotel = $appel_offre_hotel[0];
							
							$date_ajout_resto = $donnee_resto['date_ajout'];
							$date_ajout_hotel = $donnee_hotel['date_ajout'];
							if($this->compareDate($date_ajout_hotel,$appel_offre_resto)){
								$premiere_entree_hotel++;
								$donnee = array_shift($appel_offre_hotel);
								$resultat[] = $donnee;
							} else {
								$premiere_entree_restaurant++;
								$donnee = array_shift($appel_offre_resto);
								$resultat[] = $donnee;
							}
					}
						
				}
				
			}
			$_SESSION['premiere_entree_hotel'] = $premiere_entree_hotel;
			$_SESSION['premiere_entree_restaurant'] = $premiere_entree_restaurant;
			return $resultat;
	}
	
	function paginate($url, $link, $total, $current, $adj=3) {
    // Initialisation des variables
    $prev = $current - 1; // numéro de la page précédente
    $next = $current + 1; // numéro de la page suivante
    $penultimate = $total - 1; // numéro de l'avant-dernière page
    $pagination = ''; // variable retour de la fonction : vide tant qu'il n'y a pas au moins 2 pages
 
    if ($total > 1) {
        // Remplissage de la chaîne de caractères à retourner
        $pagination .= "<div class=\"pagination\">\n";
 
        /* =================================
         *  Affichage du bouton [précédent]
         * ================================= */
        if ($current == 2) {
            // la page courante est la 2, le bouton renvoie donc sur la page 1, remarquez qu'il est inutile de mettre $url{$link}1
            $pagination .= "<a href=\"{$url}\">◄</a>";
        } elseif ($current > 2) {
            // la page courante est supérieure à 2, le bouton renvoie sur la page dont le numéro est immédiatement inférieur
            $pagination .= "<a href=\"{$url}{$link}{$prev}\">◄</a>";
        } else {
            // dans tous les autres, cas la page est 1 : désactivation du bouton [précédent]
            $pagination .= '<span class="inactive">◄</span>';
        }
 
        /**
         * Début affichage des pages, l'exemple reprend le cas de 3 numéros de pages adjacents (par défaut) de chaque côté du numéro courant
         * - CAS 1 : il y a au plus 12 pages, insuffisant pour faire une troncature
         * - CAS 2 : il y a au moins 13 pages, on effectue la troncature pour afficher 11 numéros de pages au total
         */
 
        /* ===============================================
         *  CAS 1 : au plus 12 pages -> pas de troncature
         * =============================================== */
        if ($total < 7 + ($adj * 2)) {
            // Ajout de la page 1 : on la traite en dehors de la boucle pour n'avoir que index.php au lieu de index.php?p=1 et ainsi éviter le duplicate content
            $pagination .= ($current == 1) ? '<span class="active">1</span>' : "<a href=\"{$url}\">1</a>"; // Opérateur ternaire : (condition) ? 'valeur si vrai' : 'valeur si fausse'
 
            // Pour les pages restantes on utilise itère
            for ($i=2; $i<=$total; $i++) {
                if ($i == $current) {
                    // Le numéro de la page courante est mis en évidence (cf. CSS)
                    $pagination .= "<span class=\"active\">{$i}</span>";
                } else {
                    // Les autres sont affichées normalement
                    $pagination .= "<a href=\"{$url}{$link}{$i}\">{$i}</a>";
                }
            }
        }
        /* =========================================
         *  CAS 2 : au moins 13 pages -> troncature
         * ========================================= */
        else {
            /**
             * Troncature 1 : on se situe dans la partie proche des premières pages, on tronque donc la fin de la pagination.
             * l'affichage sera de neuf numéros de pages à gauche ... deux à droite
             * 1 2 3 4 5 6 7 8 9 … 16 17
             */
            if ($current < 2 + ($adj * 2)) {
                // Affichage du numéro de page 1
                $pagination .= ($current == 1) ? "<span class=\"active\">1</span>" : "<a href=\"{$url}\">1</a>";
 
                // puis des huit autres suivants
                for ($i = 2; $i < 4 + ($adj * 2); $i++) {
                    if ($i == $current) {
                        $pagination .= "<span class=\"active\">{$i}</span>";
                    } else {
                        $pagination .= "<a href=\"{$url}{$link}{$i}\">{$i}</a>";
                    }
                }
 
                // ... pour marquer la troncature
                $pagination .= '&hellip;';
 
                // et enfin les deux derniers numéros
                $pagination .= "<a href=\"{$url}{$link}{$penultimate}\">{$penultimate}</a>";
                $pagination .= "<a href=\"{$url}{$link}{$total}\">{$total}</a>";
            }
            /**
             * Troncature 2 : on se situe dans la partie centrale de notre pagination, on tronque donc le début et la fin de la pagination.
             * l'affichage sera deux numéros de pages à gauche ... sept au centre ... deux à droite
             * 1 2 … 5 6 7 8 9 10 11 … 16 17
             */
            elseif ( (($adj * 2) + 1 < $current) && ($current < $total - ($adj * 2)) ) {
                // Affichage des numéros 1 et 2
                $pagination .= "<a href=\"{$url}\">1</a>";
                $pagination .= "<a href=\"{$url}{$link}2\">2</a>";
                $pagination .= '&hellip;';
 
                // les pages du milieu : les trois précédant la page courante, la page courante, puis les trois lui succédant
                for ($i = $current - $adj; $i <= $current + $adj; $i++) {
                    if ($i == $current) {
                        $pagination .= "<span class=\"active\">{$i}</span>";
                    } else {
                        $pagination .= "<a href=\"{$url}{$link}{$i}\">{$i}</a>";
                    }
                }
 
                $pagination .= '&hellip;';
 
                // et les deux derniers numéros
                $pagination .= "<a href=\"{$url}{$link}{$penultimate}\">{$penultimate}</a>";
                $pagination .= "<a href=\"{$url}{$link}{$total}\">{$total}</a>";
            }
            /**
             * Troncature 3 : on se situe dans la partie de droite, on tronque donc le début de la pagination.
             * l'affichage sera deux numéros de pages à gauche ... neuf à droite
             * 1 2 … 9 10 11 12 13 14 15 16 17
             */
            else {
                // Affichage des numéros 1 et 2
                $pagination .= "<a href=\"{$url}\">1</a>";
                $pagination .= "<a href=\"{$url}{$link}2\">2</a>";
                $pagination .= '&hellip;';
 
                // puis des neuf derniers numéros
                for ($i = $total - (2 + ($adj * 2)); $i <= $total; $i++) {
                    if ($i == $current) {
                        $pagination .= "<span class=\"active\">{$i}</span>";
                    } else {
                        $pagination .= "<a href=\"{$url}{$link}{$i}\">{$i}</a>";
                    }
                }
            }
        }
 
        /* ===============================
         *  Affichage du bouton [suivant]
         * =============================== */
        if ($current == $total)
            $pagination .= "<span class=\"inactive\">►</span>\n";
        else
            $pagination .= "<a href=\"{$url}{$link}{$next}\">►</a>\n";
 
        // Fermeture de la <div> d'affichage
        $pagination .= "</div>\n";
    }
 
    return ($pagination);
}

 function formateDateTime($date_time){
	$resultats = array();
	$donnee = explode(' ',$date_time);
	$date = $donnee[0];
	$time = $donnee[1];
	$tableau_date = explode('-',$date);
	$tableau_time = explode(':',$time);
	$resultats['annee'] = $tableau_date[0];
	$resultats['mois'] = $tableau_date['1'];
	$resultats['jour'] = $tableau_date['2'];
	$resultats['heure'] = $tableau_time['0'];
	$resultats['minute'] = $tableau_time[1];
	$resultats['seconde'] = $tableau_time['2'];
	return $resultats;	
}
function formateDate($date){
	$resultats = array();
	$tableau_date = explode('-',$date);
	$resultats['annee'] = $tableau_date[0];
	$resultats['mois'] = $tableau_date['1'];
	$resultats['jour'] = $tableau_date['2'];
	return $resultats;	
	
}

 function trieDate($appel_offre1 , $appel_offre2){
		$date1 = formateDateTime($appel_offre1->date_ajout);
		$date2 = formateDateTime($appel_offre2->date_ajout);
		$date_1 = new DateTime($date1['annee'].'-'.$date1['mois'].'-'.$date1['jour']);
		$date_2 = new DateTime($date2['annee'].'-'.$date2['mois'].'-'.$date2['jour']);
		
		date_time_set($date_1,$date1['heure'],$date1['heure'],$date1['seconde']);
		date_time_set($date_2,$date2['heure'],$date2['heure'],$date2['seconde']);
		
		if($date_1==$date_2)
			return 0;
		else
			return ($date_1 < $date_2 ) ? 1 : -1;
		
	}

/*<?php
if(!empty($this->request->params) && ($this->request->params[0]=="restauration") 
	|| empty($this->request->params)){
		$donnee = $this->getListe("appel_offre_restaurant");
	?>
    <form>
    	<fieldset><legend>Gestions de devis de professionnelles</legend>
        <?php if(empty($donnee)){
			echo "<pre>Vous n'avez publié aucun appel d'offre en hôtellerie-hebergement.
Vous pouvez publié des appels d'offres en cliquant sur le lien suivant : 
				<a href='http://localhost/Projet Web/particulier/appelOffre/hotel'>Publié des appels d'offres</a>
				</pre>";
		} else {
			?>
				<label for="choix">Choisir un appel d'offre : </label>
                <select name="choix" required>
                	<?php
						for($i=0;$i<count($donnee);$i++){
							$entree = $donnee[$i];
							echo '<option>'.$donnee->titre_appel_offre.'</option>';	
						}
					?>
                </select>
        <?php
		}
		?>
        </fieldset>
    </form>	
    <?php
	} */
	
 function isHoraireVide($horaire){
		if($horaire->lundi=='/' && $horaire->mardi=='/' && $horaire->mercredi=='/' && $horaire->jeudi=='/'
			&& $horaire->vendredi=='/' && $horaire->samedi == "/" && $horaire->dimanche == '/')
			return true;
		return false;
	}